#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
class Solution
{
public:
    int uniqueMorseRepresentations(vector<string> &words)
    {
        vector<string> morse = {
            ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
        unordered_set<string> morseSet;
        int ans = 1, wordsLen = words.size();
        if (1 == wordsLen)
        {
            return ans;
        }
        for (string word : words)
        {
            string strMorse = "";
            for (char w : word)
            {
                strMorse += morse[w - 'a'];
            }
            // cout << strMorse << endl;
            morseSet.insert(strMorse);
        }
        return morseSet.size();
    }
};
int main()
{
    Solution s;
    vector<string> words = {"gin", "zen", "gig", "msg"};
    cout << s.uniqueMorseRepresentations(words) << endl;
    system("pause");
    return 0;
}
